1. Field of the Invention
The invention relates to a digital image compression system and more specifically to a Differential Pulse Code Modulation (DPCM) compression system.
2. Description of the Related Art
A typical color compressed image transmission system is shown in FIG. 1. The image is initially recorded as an array of pixels where each array pixel is comprised of a red pixel, a green pixel and a blue pixel. Each red (R), green (G) and blue (B) pixel is represented by an eight bit binary value and stored in the RGB input image storage 10. A typical array has the dimensions of 320 pixels by 240 pixels for a total of 76,800 pixels for each color in each image. Thus, 614,400 bits of digital data is necessary to represent each of the red pixel array, the green pixel array and the blue pixel array. Thus, 1,843,200 bits, or 230,400 bytes, of digital data is necessary to represent the entire image.
The red, green and blue pixels for each pixel in the array is converted into an eight bit Y pixel, an eight bit U pixel and an eight bit V pixel by a YUV converter 11. The typical conversion factors used are Y=0.587G+0.299R+0.114B, U=B-Y and V=R-Y. The YUV pixels are compressed by data compressor 12 to reduce the number of bits required to store or transmit the image as an array of pixels where each array pixel is composed of a compressed Y pixel, a compressed U pixel and a compressed V pixel. Data compressor 12 contains, as shown in FIG. 2, a Y data compressor 16 to compress the Y pixel, a U data compressor 17 to compress the U pixel and a V data compressor 18 to compress the V pixel.
The compressed image data is transmitted to a receiver or read directly from a storage medium, such as a compact laser disc, by a receiver. The receiver decompresses the compressed YUV pixels by data decompressor 13. Data decompressor 13 contains, as shown in FIG. 2, a Y data decompressor 18 to decompress the compressed Y pixels, a U data decompressor 18 to decompress the compressed U pixels and a V data decompressor to decompress the compressed V pixels. The YUV pixels are then converted into RGB pixels by RGB convertor 14 which are then stored in RGB output storage 15 as an array of pixels representing the original image.
In a lossy data compression system the decompressed Y, U and V pixels will not have the same value as the original uncompressed Y, U and V pixels. Lossy data compression systems are used because they allow greater compaction of the image data while still providing an acceptable recreated image.
One such lossy compression system is known as the Differential Pulse Code Modulation (DPCM) system which is described in detail in Chapter 9 of the text entitled "DIGITAL IMAGE COMPRESSION TECHNIQUES" by Majid Rabbani and Paul W. Jones, published by SPIE Press in 1991.
FIG. 3 illustrates a Y data compressor 16 used in a DPCM system. An eight binary bit pixel value for each Y pixel of the array is stored as one byte of data in Y data storage 21. A prediction value generator 26 generates a digital predicted value for each Y pixel based on previously generated decompressed values for other Y pixels in the array which have been stored in Y decompressed data storage 25. The predicted value generated by prediction value generator 26 for each pixel is subtracted from the pixel value of the Y pixel stored in the Y data storage 21 to form an error value. The error value can have a value between 255 and -255. A quantizor 23 is used to decrease the number of possible values for the error value. One type of quantizor uses thresholding to map the values between thresholds into a single value. For example, if the thresholds are established as 0, 9 and -9, any value more negative than -9 will have an assigned value of -12, any value between 0 and -9 will have an assigned value of -3, any value of 0 through +9 would have an assigned value of +3 and any value greater than +9 will have an assigned value of +12. The assigned value determined by the quantizor 23 for the error value for a pixel is added by adder 28 to the predicted value for that pixel generated by prediction value generator 26 to form a decompressed value for that pixel. The decompressed value is then stored in the Y decompressed data storage 25 to be used by the prediction value generator 26 in generating predicted values for other pixels in the array. The assigned values of the quantizor 23 are then encoded into a two bit code by encoder 24. For example, the value of +12 would be encoded as 00, the value of +3 would be encoded as 01, the value of -3 would be encoded as 10 and the value of -12 would be encoded as 11. The two bit encoded quantized error value for the compressed pixel would then be stored in the encoded quantized error value storage 27 for transmission or recording on a storage medium. Each Y pixel is now represented by a 2 bit encoded quantized error value.
Referring to FIG. 4, a Y data decompressor 18 receives and stores in encoded quantized error value storage 29 the two bit encoded quantized error value for each Y pixel in the array. Decoder 30 converts each two bit encoded quantized error value into the assigned error value for that pixel which was assigned initially by the quantizor 23 in the Y data compressor 16. Continuing with the example, the selected error value generated by the statistical decoder 30 will either be +12, +3, -3 or -12. Prediction value generator 32 generates a predicted value for the pixel whose assigned error value is presently being presented by statistical decoder 30. The predicted value is derived from decompressed values stored in Y decompressed data storage 33 of other pixels previously decompressed. Adder 31 adds together the assigned error value for the pixel and the predicted value for the pixel to form a decompressed value for the pixel. The decompressed value is then stored in the Y decompressed data storage 33 for use by predicted value generator 26 in generating predicted values for other pixels in the array.
In the DPCM System, it is important that the predicted value generated by predicted value generator 26 in compressor 16 for a given pixel is the same as the predicted value generated by predicted value generator 32 in decompressor 18.
The Y pixel array can be considered as an array comprised of rows and columns. It is a common practice to generate the decompressed values for the Y pixels one at a time starting at the upper left hand corner of the array and proceeding across each row from left to right and the rows from top to bottom. This procedure is used because the DPCM system employs predictors which use previously generated decompressed values of pixels in the generation of the predicted value by the prediction value generator. One of the commonly used 3rd-order, 2-D predictors is X=0.75(A+C)-0.5B where X is the predicted value to be generated and A, B and C are decompressed values previously generated for pixels in the array. FIG. 5 illustrates the location in the array of pixels A, B and C relative to pixel X. In order to calculate the top row and the left most column in the array, mid scale grey constants are used for the decompressed values when no other data is available.
In the DPCM system, the time necessary to decompress the Y pixel array is determined by the time needed to decompress a single Y pixel in the array. Only one pixel may be decompressed at a time whenever a 2nd or 3rd order, 2-D predictor is being used since the predictors use the decompressed values of other pixels previously decompressed by the system. The accuracy of the predictor determines the quality of the reconstructed image.